package com.syl.ippool.ifice.pool;

import com.syl.ippool.domain.IpBasePojo;

import java.util.List;
import java.util.Set;

/**
 * ip池子，顶层接口
 *
 * @author sunyalong
 * @date 2019-12-12 19:31:43
 */
public interface IGraspIpPool {

    /**
     * 添加单个ip进入ip池
     *
     * @param ipBasePojo
     */
    void add(IpBasePojo ipBasePojo);

    /**
     * 批量添加
     *
     * @param ipBasePojos
     */
    void add(List<IpBasePojo> ipBasePojos);


    /**
     * 获得一个ip
     *
     * @return
     */
    IpBasePojo get();

    /**
     * 获得一个ip
     *
     * @return
     */
    List<IpBasePojo> get(int num);

    /**
     * 删除并获得
     *
     * @param num
     * @return
     */
    List<IpBasePojo> removeGet(int num);

    /**
     * 删除一个
     *
     * @param ipBasePojo
     * @return
     */
    boolean remove(IpBasePojo ipBasePojo);


    /**
     * 获得ip池数量
     *
     * @return
     */
    int getPoolSize();

}
